﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConceptionLogiciel_Devoir1
{
    class Retour
    {
        private const double fraisJourRetard = 50.00;
        private const double fraisHeureRetard = 2.00;
        private const int limitKmLocation = 100;
        private const double fraisParKmDepasse = 0.5;

        private DateTime dateRetour;
        private String dommage;
        private double kilometrage;
        private double fraisKm;
        private double fraisRetard;

        public Retour()
        { }

        public Retour(DateTime _dateRetour, String _dommage, double _nouveauKm, double _ancienKm, DateTime _dateFinPrevuLocation)
        {
            this.dateRetour = _dateRetour;
            this.dommage = _dommage;
            this.kilometrage = _nouveauKm;

            calculerFrais(_ancienKm, _dateFinPrevuLocation);
        }

        public DateTime DateRetour
        {
            get { return this.dateRetour; }
            set { this.dateRetour = value; }
        }

        public String Dommage
        {
            get { return this.dommage; }
            set { this.dommage = value; }
        }

        public double Kilometrage
        {
            get { return this.kilometrage;  }
            set { this.kilometrage = value; }
        }

        public double FraisKm
        {
            get { return this.fraisKm; }
        }

        public double FraisRetard
        {
            get { return this.fraisRetard; }
        }

        public void calculerFrais(double _ancienKmVehicule, DateTime _dateFinPrevuLocation)
        {
            // calculer les frais sur le kilometrage et 
            if (this.kilometrage - _ancienKmVehicule > limitKmLocation)
            {
                this.fraisKm += (this.kilometrage - _ancienKmVehicule - limitKmLocation) * fraisParKmDepasse;
            }

            if (this.dateRetour > _dateFinPrevuLocation)
            { 
                // calculer si heures ou jours
                // si moins d'une journee, calculer a partir de 12h00 le nombre d'heure jusquau retour du vehicule * fraisHeureRetard
                // si plus d'une journee, calculer le nombre de jours * fraisJourRetard
                this.fraisRetard += 50.00;
            }
        }
    }
}
